const axios = require('axios')
let _baseUrl = '/gateway/fileCenter/api'

// 获取目录下文件列表
export function apiGetFileList (param) {
  const url = _baseUrl + '/file/getFileList' + param
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 获取公开项目文件列表
export function getPublicProjectFileList (param) {
  const url = _baseUrl + '/file/getPublicProjectFileList' + param
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 获取公开数据集文件列表
export function getPublicDatasetFileList (param) {
  const url = _baseUrl + '/file/getPublicDatasetFileList' + param
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 创建文件夹
export function apiCreateFileFolder (data) {
  const url = _baseUrl + '/file/addDir'
  return axios.post(url, data).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 删除文件或文件夹
export function apiDeleteFile (param) {
  const url = _baseUrl + '/file/deleteFile' + param
  return axios.post(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 文件或文件夹重命名
export function apiRename (param) {
  const url = _baseUrl + '/file/renameFile' + param
  return axios.post(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 复制文件或文件夹
export function apiCopy (param) {
  const url = _baseUrl + '/file/copyFile' + param
  return axios.post(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 上传文件
export function upload (data) {
  const url = _baseUrl + '/file/upload'
  return axios.post(url, data).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 下载文件
export function apiDownloadFile (para) {
  const url = _baseUrl + '/file/download' + para
  return axios.get(url)
}

// 任务详情页-获取output目录下文件列表
export function getJobOutPutFileList (param) {
  const url = _baseUrl + '/file/getJobOutPutFileList' + param
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 公开任务详情页-获取output目录下文件列表
export function getPublicJobOutPutFileList (param) {
  const url = _baseUrl + '/file/getPublicJobOutPutFileList' + param
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 使用output目录生成数据集
export function copyOutputFile (query) {
  const url = _baseUrl + '/copyOutputFile' + query
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 获取个人任务文件列表(代码快照)
export function getProjectJobFileList (query, header) {
  const url = _baseUrl + '/file/getProjectJobFileList' + query
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 获取公开任务文件列表(代码快照)
export function getPublicProjectJobFileList (query, header) {
  const url = _baseUrl + '/file/getPublicProjectJobFileList' + query
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 任务文件预览
export function previewProjectJobFile (query, header) {
  const url = _baseUrl + '/file/projectJobFile/preview' + query
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 任务文件下载
export function downloadProjectJobFile (query, header) {
  const url = _baseUrl + '/file/projectJobFile/download' + query
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 获取任务信息
export function copyOutputFileForModel (data) {
  const url = _baseUrl + '/file/copyOutputFileForModel'
  return axios.post(url, data).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 获取公开模型目录下文件列表
export function getFileListForModel (query) {
  const url = _baseUrl + '/file/getFileListForModel' + query
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 获取1.0用户文件列表
export function getUserHomeFileList (param) {
  const url = _baseUrl + '/file/getUserHomeFileList' + param
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}

// 1.0文件生成数据集/模型
export function copyFilesToDataSetOrModel (query) {
  const url = _baseUrl + '/file/copyFilesToDataSetOrModel' + query
  return axios.get(url).then((res) => {
    return Promise.resolve(res.data)
  })
}
